/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;

import BD.Tabla;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import nivelPersistencia.PersistenciaException;
import objetosNegocio.Arrendador;

/**
 *
 * @author Christian
 */
public class Arrendadores extends Tabla {

    private String nombreTabla;

    public Arrendadores(String nombreTabla) {
        super(nombreTabla);
        this.nombreTabla = nombreTabla;
    }

    public int addArrendador(Arrendador arrendador) throws PersistenciaException {
        String s = "INSERT INTO " + nombreTabla + "(nombre, apellido, "
                + "sexo, direccion, telefono, celular, email) VALUES('" + arrendador.getNombre() + "', '"
                + arrendador.getApellido() + "', '" + arrendador.getSexo() + "', '"
                + arrendador.getDireccion() + "', '" + arrendador.getTelefono() + "', '"
                + arrendador.getCelular() + "', '" + arrendador.getEmail() + "');";
        String s1 = "SELECT idArrendador FROM " + nombreTabla + " WHERE celular = '" + arrendador.getCelular() + "';";
        System.out.println(s);
        super.actualiza(s);
        super.consulta(s1);
        try {
            ResultSet rs = obtenRenglon();
            if (rs != null) {
                return rs.getInt("idArrendador");
            }
        } catch (SQLException msg) {
            throw new PersistenciaException("No se pudo obtener el ID del nuevo Arrendador.", msg);
        }
        return -1;
    }

    public void updateArrendador(Arrendador arrendador) throws PersistenciaException {
        String s = "UPDATE " + nombreTabla + " "
                + "SET nombre = '" + arrendador.getNombre() + "', "
                + "apellido = '" + arrendador.getApellido() + "', "
                + "sexo = '" + arrendador.getSexo() + "', "
                + "direccion = '" + arrendador.getDireccion() + "', "
                + "telefono = '" + arrendador.getTelefono() + "', "
                + "celular = '" + arrendador.getCelular() + "', "
                + "email = '" + arrendador.getEmail() + "' "
                + "WHERE idArrendador = '" + arrendador.getIdArrendador() + "';";
        //System.out.println(s);
        super.actualiza(s);
    }

    public Arrendador getArrenadador(Arrendador arrendador) throws PersistenciaException {
        String s = "SELECT * FROM " + nombreTabla + " WHERE idArrendador = " + arrendador.getIdArrendador();
        super.consulta(s);
        ResultSet rs;
        try {
            if ((rs = obtenRenglon()) != null) {
                Arrendador arrendadorS = new Arrendador(rs.getInt("idArrendador"),
                        rs.getString("nombre"), rs.getString("apellido"), rs.getString("sexo"),
                        rs.getString("direccion"), rs.getString("telefono"), rs.getString("celular"),
                        rs.getString("email"));
                return arrendadorS;
            }
        } catch (SQLException msg) {
            throw new PersistenciaException("Error al obtener el Arrendador.", msg);
        }
        return null;
    }

    public List<Arrendador> listOfArrendadores() throws PersistenciaException {
        List<Arrendador> lista = new ArrayList<Arrendador>();
        String s = "SELECT * FROM " + nombreTabla;;
        super.consulta(s);
        ResultSet rs;
        try {
            while ((rs = obtenRenglon()) != null) {
                Arrendador arrendadorS = new Arrendador(rs.getInt("idArrendador"),
                        rs.getString("nombre"), rs.getString("apellido"), rs.getString("sexo"),
                        rs.getString("direccion"), rs.getString("telefono"), rs.getString("celular"),
                        rs.getString("email"));
                lista.add(arrendadorS);
            }
        } catch (SQLException msg) {
            throw new PersistenciaException("Error al generar la lista.", msg);
        }
        return lista;
    }

    public void deleteArrendador(Arrendador arrendador) throws PersistenciaException {
        String s = "DELETE FROM " + nombreTabla + " WHERE idArrendador = " + arrendador.getIdArrendador() + ";";
        System.out.println("Arrendadores - Borrar: " + arrendador.getIdArrendador());
        System.out.println("Arrendadores - Borrar: " + s);
        actualiza(s);
    }
}